昨天我們看過了 Terraform 大概怎麽使用
我們接下來就來利用 Terraform 管理 Proxmox VE
我們在前面提過, Proxmox VE 提供了兩種方式讓你安裝系統
分別是容器與 VM
我們先看該如何利用 Terraform 管理 Proxmox VE 裡的容器
但在這之前,我們要先安裝 Terraform 的 plug-in
這個 plug-in 是用 Go 語言寫的,所以要先確保你的系統裡有 Go 能用
安裝這個 plug-in 的方式如下
git clone
上面這個專案cd ./terraform-provider-proxmox
go install github.com/Telmate/terraform-provider-proxmox/cmd/terraform-provider-proxmox
go install github.com/Telmate/terraform-provider-proxmox/cmd/terraform-provisioner-proxmox
make
mkdir -p ~/.terraform.d/plugins/github.com/telmate/proxmox/1.0.0/linux_amd64/
cp ./bin/* ~/.terraform.d/plugins/github.com/telmate/proxmox/1.0.0/linux_amd64
這裡有部分指令和 repo 裡寫的不太一樣,是因為新版的 Terraform 更改了 plug-in 放置的方法
裝好了 plug-in 後,接下來我們就可以開始使用 terraform-provider-proxmox
了
我們先來看一個範例 Terraform config
terraform {
required_providers {
proxmox = {
version = "~> 1.0.0"
source = "github.com/telmate/proxmox"
}
}
}
provider "proxmox" {
pm_tls_insecure = true
pm_api_url = "https://<PVE_HOST>/api2/json"
pm_user = "root@pam"
pm_password = "insecurepassword"
}
resource "proxmox_lxc" "lxc-test" {
hostname = "lxc-test-host"
cores = 1
memory = "512"
swap = "512"
network {
name = "eth0"
bridge = "vmbr0"
ip = "dhcp"
firewall = true
}
ostemplate = "local:vztmpl/ubuntu-20.04-standard_20.04-1_amd64.tar.gz"
password = "insecurepassword"
rootfs = "local-lvm:8"
storage = "local-lvm"
target_node = "ithelp"
unprivileged = true
start = true
}
一樣在一開始的 terraform
block 裡,我們要設定 Terraform 使用 proxmox 這個 provider
這裡的版本和路徑的部分,我們稍早已經設定好了,可以和剛才操作過的步驟做比較
接下來是設定 proxmox
這個 provider,裡面有這些選項
Option | Type | Sample |
---|---|---|
pm_api_url | required | https://proxmox-server01.example.com:8006/api2/json |
pm_user | required | terraform@pam |
pm_password | required | insecurepassword |
pm_otp | optional | 123456 |
pm_tls_insecure | optional | true |
pm_parallel | optional | 4 |
pm_timeout | optional | 300 |
基本上,我們需要設定的是 pm_api_url
, pm_user
和 pm_password
三種選項
如果你的 host 還是使用自簽憑證,或是你不確定你的 host 有沒有更換過 SSL 憑證,那也加上 pm_tls_insecure=true
這個選項
接下來,我們就可以設定我們要新建的容器
在這裡我們有眾多設定選項,我們可以調整 CPU 數量、記憶體、網路、作業系統...等等,基本上,我們可以利用圖形化界面建立出什麼容器,我們就可以利用 Terraform 建立起對應的容器
拿著上面的的設定檔,我們實際執行看看 terraform plan
確認沒問題後即可執行 terraform apply
而部署成功後,我們可以在我們的 Proxmox VE 界面裡看到我們剛建立好的容器
而 apply
沒問題,我們也需要測試一下 destroy
沒問題
terraform destroy
也順利的執行了!
明天來看怎麽利用 Terraform 管理 VM
Hi tsunderechen,
Thanks for the guide. However, this no longer works. The provisoner seems to be gone.
go install github.com/Telmate/terraform-provider-proxmox/cmd/terraform-provisioner-proxmox
Any idea on how to get around it?
Thanks.
Hmm, seems like Telmate has updated this project from v1.x to v2.0, so the tutorial above may be outdated.
Anyway, for your question. I took a look at the repo, and terraform-provider-proxmox
doesn't need terraform-provisioner-proxmox
anymore, just install terraform-provider-proxmox
and you should be good to go.
I'll recommend you to check out the repo yourself.
https://github.com/Telmate/terraform-provider-proxmox